﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using ECOSYSTEM_BL;
using ECOSYSTEM_Dominio;

namespace ECOSYSTEMPRESENTACION
{
    public partial class frmBuscarFactura : Form
    {
        public frmBuscarFactura()
        {
            InitializeComponent();
        }
        Factura laFactura = new Factura();
        FacturaBL laFacturaBl = new FacturaBL();
        frmFactura FormFactura = new frmFactura();
        private void cargarListaFacturas(String Fecha) {
            if (dgvListaFactura.DataSource == null) {
                dgvListaFactura.DataSource = laFacturaBl.ObtenerListaFacturasEmitidas(Fecha);
            }
        }
        private void InhabilitarBotonesFactura() {            
            FormFactura.btnNuevo.Enabled = false;
            FormFactura.btnBuscar.Enabled = false;
            FormFactura.btnUpdateFact.Enabled = true;
            FormFactura.btnCancelar.Enabled = true;
        }
        public void RecuperarListaSeriePorVentaFactura(Int32 IDComprobante, String TipoComprobante) {
            frmDesactivarSerie ListaSer = new frmDesactivarSerie();
            ListaSer.CargarSeriesDeComprobanteVenta(IDComprobante, TipoComprobante);
        }
        //--> EVENTOS <---
        private void frmBuscarFactura_Load(object sender, EventArgs e)
        {
            try
            {
                dtpFecha.Text = DateTime.Now.ToShortDateString();
                cargarListaFacturas(dtpFecha.Text);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void btnMostrarAll_Click(object sender, EventArgs e)
        {
            dgvListaFactura.DataSource = null;
            cargarListaFacturas("0");
        }

        private void btnRegresar_Click(object sender, EventArgs e)
        {
            try
            {
                FormFactura.MdiParent = this.MdiParent;
                FormFactura.Show();
                this.Close();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void dtpFecha_ValueChanged(object sender, EventArgs e)
        {
            try
            {
                dgvListaFactura.DataSource = null;
                cargarListaFacturas(dtpFecha.Text);
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void dgvListaFactura_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                Int32 nroFila = Int32.Parse(e.RowIndex.ToString());
                FormFactura.MdiParent = this.MdiParent;
                FormFactura.ObtenerTCambio();
                FormFactura.txtNroFactura.Text = Convert.ToString(dgvListaFactura["NroFactura", nroFila].Value);
                
                FormFactura.lblNroFactura.Text = Convert.ToString(dgvListaFactura["NroFactura", nroFila].Value);
                FormFactura.lblFacturaID.Text = Convert.ToString(dgvListaFactura["FacturaID", nroFila].Value);                
                FormFactura.cmbTipoMoneda.Text = Convert.ToString(dgvListaFactura["Moneda", nroFila].Value);
                FormFactura.txtTCambioComprob.Text = Convert.ToString(dgvListaFactura["TCambioFact", nroFila].Value);
                String NroGuiaRemision = Convert.ToString(dgvListaFactura["NroGuia", nroFila].Value);
                if (NroGuiaRemision != "")
                {
                    FormFactura.txtNroGuia.Text = NroGuiaRemision;
                    FormFactura.cbMostrarGuia.Visible = true;
                }
                else
                    FormFactura.cbRegistrarGuia.Visible = true;
                FormFactura.dtpFechaActual.Value = Convert.ToDateTime(dgvListaFactura["FecEmision", nroFila].Value);
                FormFactura.LlenarComboCliente();
                FormFactura.cmbRazonSocial.SelectedValue = Convert.ToString(dgvListaFactura["RUC_DNI_Cliente",nroFila].Value);
                FormFactura.LlenarDatosCliente(Convert.ToString(FormFactura.cmbRazonSocial.SelectedValue));
                FormFactura.CargarDetalleFactura();
                FormFactura.cmbFormaPago.SelectedItem = Convert.ToString(dgvListaFactura["TCancelacionFact", nroFila].Value);
                FormFactura.txtNroDias.Text = Convert.ToString(dgvListaFactura["DiasPlasoPago", nroFila].Value);
                FormFactura.txtFechaVence.Text = Convert.ToString(FormFactura.dtpFechaActual.Value.AddDays(Convert.ToDouble(dgvListaFactura["DiasPlasoPago", nroFila].Value)));
                FormFactura.txtPago.Text = Convert.ToString(dgvListaFactura["PagoCon", nroFila].Value);               
                FormFactura.gbDatos.Enabled = true;
                //FormFactura.lblReferencia.Text = "UPDATE";
                InhabilitarBotonesFactura();
                FormFactura.Show();
                this.Close();
            }
            catch (Exception ex) { MessageBox.Show(ex.Message); }
        }

        private void btnCancelar_Click(object sender, EventArgs e)
        {
            this.Close();
        }
    }
}
